package com.ruoyi.yljf.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.yljf.domain.dto.CreateDTO.MedicalRecordCreateDTO;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;

import java.util.Date;

/**
 * 医案对象 yljf_medical_record
 * 
 * @author metaee
 * @date 2025-02-14
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "yljf_medical_record")
public class MedicalRecord   {
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /** 主键id */
    @TableId(type = IdType.AUTO)
    private Long recordId;

    /** 医师id */
    @Excel(name = "医师id")
    private Long doctorId;

    /** 医师名 */
    @Excel(name = "医师名")
    private String doctorName;

    /** 医案标题 */
    @Excel(name = "医案标题")
    private String recordName;

    /** 患者姓名 */
    @Excel(name = "患者姓名")
    private String patientName;

    /** 患者性别（字典数据） */
    @Excel(name = "患者性别", readConverterExp = "字=典数据")
    private String patientSex;

    /** 换着年龄 */
    @Excel(name = "换着年龄")
    private Long patientAge;

    /** 患者体重（kg） */
    @Excel(name = "患者体重", readConverterExp = "k=g")
    private Long patientWeight;

    /** 患者身高（m） */
    @Excel(name = "患者身高", readConverterExp = "m=")
    private Long patientHeight;

    /** 婚否（已婚，未婚，离异） */
    @Excel(name = "婚否", readConverterExp = "已=婚，未婚，离异")
    private String marital;

    /** 主诉 */
    @Excel(name = "主诉")
    private String complain;

    /** 诊断 */
    @Excel(name = "诊断")
    private String diagnose;

    /** 病史（富文本） */
    @Excel(name = "病史", readConverterExp = "富=文本")
    private String caseHistory;

    /** 刻下症（存储json） */
    @Excel(name = "刻下症", readConverterExp = "存=储json")
    private String Incision;

    /** 望切查（存储json） */
    @Excel(name = "望切查", readConverterExp = "存=储json")
    private String interrogation;

    /** 病理（存储json） */
    @Excel(name = "病理", readConverterExp = "存=储json")
    private String pathology;

    /** 其他 */
    @Excel(name = "其他")
    private String others;

    /** 用户id */
    @Excel(name = "用户id")
    private Long userId;

    /** user（用户分享）/admin（管理后台新增） */ //后台新增的属于全面辩证医学
    @Excel(name = "user（用户分享）/admin（管理后台新增）")
    private String createType;

    /** 0:不推荐  1推荐 */
    @Excel(name = "0:不推荐  1推荐")
    private Integer isRecommend;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @TableField(exist = false)
    private boolean isCollect;

    public MedicalRecord(MedicalRecordCreateDTO dto){
        BeanUtils.copyProperties(dto,this);
    }

}
